this._rightArrow.opacity = this._rightGradient.opacity;
},
- addItem : function(item) {
+ addItem : function(item, label) {
let bbox = new St.Button({ style_class: 'item-box',
reactive: true });
bbox.connect('clicked', Lang.bind(this, function() { this._onItemClicked(n); }));
bbox.connect('enter-event', Lang.bind(this, function() { this._onItemEnter(n); }));
+ bbox.label_actor = label;
+
this._items.push(bbox);
},
_addIcon : function(appIcon) {
this.icons.push(appIcon);
- this.addItem(appIcon.actor);
+ this.addItem(appIcon.actor, appIcon.label);
let n = this._arrows.length;
let arrow = new St.DrawingArea({ style_class: 'switcher-arrow' });
this._labels.push(bin);
bin.add_actor(name);
box.add_actor(bin);
+
+ this.addItem(box, name);
+ } else {
+ this.addItem(box, null);
}
- this.addItem(box);
}
},
this.icon = new AppIcon(app, iconParams);
this.actor.set_child(this.icon.actor);
+ this.actor.label_actor = this.icon.label;
+
this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this.actor.connect('popup-menu', Lang.bind(this, this._onKeyboardPopupMenu));
let text = new St.Label({ text: item.name });
box.add(text, { x_fill: false });
- this.addItem(box);
+ this.addItem(box, text);
}
};
box.add_actor(this._iconBin);
if (params.showLabel) {
- this._name = new St.Label({ text: label });
- box.add_actor(this._name);
+ this.label = new St.Label({ text: label });
+ box.add_actor(this.label);
} else {
- this._name = null;
+ this.label = null;
}
if (params.createIcon)
let childBox = new Clutter.ActorBox();
- if (this._name) {
- let [labelMinHeight, labelNatHeight] = this._name.get_preferred_height(-1);
+ if (this.label) {
+ let [labelMinHeight, labelNatHeight] = this.label.get_preferred_height(-1);
preferredHeight += this._spacing + labelNatHeight;
let labelHeight = availHeight >= preferredHeight ? labelNatHeight
childBox.x2 = availWidth;
childBox.y1 = iconSize + this._spacing;
childBox.y2 = childBox.y1 + labelHeight;
- this._name.allocate(childBox, flags);
+ this.label.allocate(childBox, flags);
}
childBox.x1 = Math.floor((availWidth - iconNatWidth) / 2);
alloc.min_size = iconMinHeight;
alloc.natural_size = iconNatHeight;
- if (this._name) {
- let [labelMinHeight, labelNatHeight] = this._name.get_preferred_height(forWidth);
+ if (this.label) {
+ let [labelMinHeight, labelNatHeight] = this.label.get_preferred_height(forWidth);
alloc.min_size += this._spacing + labelMinHeight;
alloc.natural_size += this._spacing + labelNatHeight;
}
let icon = new IconGrid.BaseIcon(this.metaInfo['name'],
{ createIcon: this.metaInfo['createIcon'] });
content.set_child(icon.actor);
+ this.actor.label_actor = icon.label;
}
this._content = content;
this.actor.set_child(content);
let title = new St.Label({ text: provider.name,
style_class: 'dash-search-button-label' });
+ button.label_actor = title;
bin.set_child(title);
button.set_child(bin);
provider.actor = button;